package net.mikoo.seals.biz.service;

import java.util.List;

import net.mikoo.seals.common.model.PageModel;
import net.mikoo.seals.model.Devices;
import net.mikoo.seals.model.DevicesAct;
import net.mikoo.seals.model.DevicesActQuery;
import net.mikoo.seals.model.DevicesQuery;
import net.mikoo.seals.model.DevicesTake;
import net.mikoo.seals.model.DevicesUsed;
import net.mikoo.seals.model.DevicesUsedCert;
import net.mikoo.seals.model.DevicesUsedFail;
import net.mikoo.seals.model.Seal;

public interface DevicesServices {

	public PageModel<Devices> getPageByQuery(DevicesQuery query);
	
	public Devices getInfoById(Long devicesId);
	
	Devices getInfoByQuery(DevicesQuery query);
	
	List<Devices> getListByQuery(DevicesQuery query);
	
	void setWorkflow(Long devicesId, Long workFlowId, Long companyId, String userLoginId);
	
	void install(Long devicesId , Long companyId, String userLoginId);
	
	void installConfirm(Devices devices, String userLoginId);
	
	void resetStatus(Long devicesId, String userLoginId);
	
	void publish(Devices devices, String userLoginId);
	
	void setCustos(Long devicesId, Long partyId, String userLoginId);

	void setting(Seal seal);

	void used(DevicesUsed devicesUsed);
	
	void rollBackUse(DevicesUsedFail fail, Integer times);
	
	void setUsedImg(DevicesUsedCert devicesUsedCer);

	void save(Devices devices);

	void upcert(DevicesUsedCert cert);

	List<DevicesAct> getValidActListByQuery(DevicesActQuery query);
	
	void take(DevicesTake take, Long userPartyId);
	
	void setInterim(Seal seal);
	
	void releaseInterim(long sealId);
	
	void setName(Seal seal);
	
	void upgrade(Devices devices);
	
	void syncStatus(Devices devices);
}
